<?php
/**
 * Database Manager
 * 
 * @author Alexey Strelnikoff <zog@zoggi.net>
 */

namespace Zoggi\Database;

/**
 * Класс для хранения подключений к базе данных
 * 
 * Пример использования
 * <code>
 * $db1 = new Mysql();
 * $db1->connect('localhost','user1login','user1pass','database1');
 * Manager::set(1);
 * 
 * $db2 = new Mysql();
 * $db2->connect('localhost','user2login','user2pass','database2');
 * Manager::set('connect2');
 * 
 * $base = Manager::get(1);
 * $q = $base->query('SHOW TABLES');
 * var_export( $q->getArray() );
 * // будут напечатаны таблицы из первого подключения, то есть из database1
 * </code>
 */
class Manager {

	/**
	 * Подключения к базам данных
	 * @var array 
	 */
	private static $links;

	/**
	 * Сохраняет подключение к БД в синглтон
	 * 
	 * @param int|string $dbId Иденитфикатор подключения к БД
	 * @param Mysql $db Объект с базой данных
	 */
	public static function set( $dbId, $db ) {
		self::$links[$dbId] = $db;
	}

	/**
	 * Возвращает объект с нужным подключением к БД
	 * 
	 * @param int|string $dbId Идентификтор подключения к БД
	 * @return Mysql Объект с базой данных
	 */
	public static function get( $dbId ) {
		if ( empty(self::$links[$dbId]) ) {
			trigger_error("Can't find database instance '{$dbId}'", E_USER_ERROR);
		} else {
			return self::$links[$dbId];
		}
	}

}